6f9965fcfa53919aae8871ab02f15f4725d4171f,omod-common/src/test/java/org/openmrs/module/webservices/rest/web/api/impl/RestServiceImplTest.java,RestServiceImplTest,getSearchHandler_shouldThrowAmbiguousExceptionIfCase1,#,78
Before Change
*/
@Test
public void getSearchHandler_shouldThrowAmbiguousExceptionIfCase1() throws Exception {
RestServiceImpl service = new RestServiceImpl();
SearchHandler searchHandler = mock(SearchHandler.class);
SearchConfig searchConfig = new SearchConfig("conceptByMapping", "concept", "1.8.*", new SearchQuery.Builder(
"description").withRequiredParameters("sourceName", "code").build());
when(searchHandler.getSearchConfig()).thenReturn(searchConfig);
service.addSupportedSearchHandler(searchHandler);
SearchHandler searchHandler2 = mock(SearchHandler.class);
SearchConfig searchConfig2 = new SearchConfig("conceptByMapping2", "concept", "1.8.*", new SearchQuery.Builder(
"description").withRequiredParameters("sourceName", "code").build());
when(searchHandler2.getSearchConfig()).thenReturn(searchConfig2);
service.addSupportedSearchHandler(searchHandler2);
RestUtil.disableContext(); //to avoid a Context call
Map<String, String[]> parameters = new HashMap<String, String[]>();
parameters.put("sourceName", new String[] { "some name" });
parameters.put("code", new String[] { "some code" });
try {
service.getSearchHandler("concept", parameters);
fail();
}
catch (InvalidSearchException e) {}
After Change
"sourceName", "code").build());
when(searchHandler2.getSearchConfig()).thenReturn(searchConfig2);
when(restHelperService.getRegisteredSearchHandlers()).thenReturn(Arrays.asList(searchHandler, searchHandler2));
RestUtil.disableContext(); //to avoid a Context call
Map<String, String[]> parameters = new HashMap<String, String[]>();
parameters.put("sourceName", new String[] { "some name" });
parameters.put("code", new String[] { "some code" });
expectedException.expect(InvalidSearchException.class);
expectedException.expectMessage("The search is ambiguous. Please specify s=");
restService.getSearchHandler("concept", parameters);
}
public Set<SearchQuery> newParameters(SearchQuery... parameters) {